#include <iostream>
#include <climits>

using namespace std;

const int N=5e3+10;

int n,ret=INT_MIN;
int a[N],dp[N]; 

int main() 
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	
	for(int i=n;i>=1;i--)
	{
		dp[i]=1;
		for(int j=i+1;j<=n;j++)
		{
			if(a[j]>a[i])	dp[i]=max(dp[i],1+dp[j]);
		}
		ret=max(ret,dp[i]);
	}
	
	cout<<ret<<endl;
	return 0;
}
